package com.kinghood.productcenter.service.base;

import com.baomidou.mybatisplus.extension.service.IService;
import com.kinghood.productcenter.common.model.dao.base.BaseLabelDO;
import com.kinghood.infrastructure.model.dto.StatusReqDTO;
import com.kinghood.productcenter.common.model.dto.base.LabelReqDTO;
import com.kinghood.productcenter.common.model.dto.base.ListLabelQueryDTO;
import com.kinghood.sharding.model.PageResponseVO;

import javax.servlet.http.HttpServletResponse;

/**
 * <p>
 * 基础选项-标签表 服务类
 * </p>
 *
 * @author KingHood
 * @since 2023-12-20
 */
public interface IBaseLabelService extends IService<BaseLabelDO> {

    /**
     * 列表
     *
     * @param param 参数
     * @return @return {@link PageResponseVO }
     * @author jp
     * @date 2024/01/12 14:55
     */
    PageResponseVO listLabel(ListLabelQueryDTO param);

    /**
     * 添加或更新
     *
     * @param param 参数
     * @return
     * @author jp
     * @date 2024/01/12 14:55
     */
    void addOrUpdateLabel(LabelReqDTO param);

    /**
     * 详细
     *
     * @param id 身份证件
     * @return @return {@link LabelReqDTO }
     * @author jp
     * @date 2024/01/12 14:55
     */
    LabelReqDTO detailLabel(Long id);

    /**
     * 更新状态
     *
     * @param param 参数
     * @return
     * @author jp
     * @date 2024/01/12 14:55
     */
    void updateLabelStatus(StatusReqDTO param);

    /**
     * 标签下拉
     *
     * @return @return {@link Object }
     * @author jp
     * @date 2024/01/12 14:56
     */
    Object getAllLabel();

    /**
     * 下载标签
     *
     * @param param    参数
     * @param response 回答
     * @author jp
     * @date 2024/01/04
     */
    void downloadLabel(ListLabelQueryDTO param, HttpServletResponse response);
}
